package gatperdut.chato.core.util;

import gatperdut.chato.core.item.ItemController;
import gatperdut.chato.core.item.inventory.InventoryController;
import gatperdut.chato.model.Chato.Util.Lock;

public class LockController {

    private final Lock lock;

    public LockController( Lock lock ) {
        this.lock = lock;
    }

    public boolean unlocksWith( ItemController ic ) {
        return getLock().getKeys().contains( ic.getItem().getTemplate() );
    }

    public ItemController unlocksWith( InventoryController invC ) {
        for ( ItemController ic : invC.getItemControllers() ) {
            if ( unlocksWith( ic ) ) {
                return ic;
            }
        }
        return null;
    }

    public boolean isLocked() {
        return getLock().isLocked();
    }

    public void setLocked( boolean locked ) {
        getLock().setLocked( locked );
    }

    public Lock getLock() {
        return lock;
    }

}
